﻿<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

    <title>葡萄藤PPT</title>

    <link rel="stylesheet" href="https://ptteng.github.io/PPT/css/reveal/reveal.css">

    <!-- PPT主题，可以在/css/reveal/theme/中选择其他主题，目前暂时只能使用该模板 -->
    <link rel="stylesheet" href="https://ptteng.github.io/PPT/css/reveal/theme/ptt.css">

    <!-- syntax highlighting 代码高亮主题 -->
    <link rel="stylesheet" href="https://ptteng.github.io/PPT/lib/reveal/css/zenburn.css">
   

    <!-- 打印和PDF输出样式 -->
    <script>
        var link = document.createElement( 'link' );
        link.rel = 'stylesheet';
        link.type = 'text/css';
        link.href = window.location.search.match( /print-pdf/gi ) ? 'https://ptteng.github.io/PPT/css/reveal/print/pdf.css' : '../css/reveal/print/paper.css';
        document.getElementsByTagName( 'head' )[0].appendChild( link );
    </script>
</head>
<body>
<img src="https://ptteng.github.io/PPT/img/demo/logo.png" alt="" usemap="#pttmap" class="base-logo">
<map name="pttmap">
    <area shape="rect" coords="0,0,276,58" href="http://www.jnshu.com" alt="" target="_blank"/>
</map>
<div class="reveal">
    <div class="slides">
	
        <section>
            <h3>JS有哪些数据类型和常用方法？</h3>
            <p>分享人:冯亚超</p>
        </section>
		
        <section>
            <p>1.背景介绍</p>
            <p>2.知识剖析</p>
            <p>3.常见问题</p>
            <p>4.解决方案</p>
            <p>5.编码实战</p>
            <p>6.扩展思考</p>
            <p>7.参考文献</p>
            <p>8.更多讨论</p>
        </section>
		
        <section>
            <p>1.背景介绍</p>
        </section>
		
        <section>	           	
            <p>JavaScript一种直译式脚本语言，是一种动态类型、弱类型、基于原型的语言，内置支持类型。它的解释器被称为JavaScript引擎，为浏览器的一部分，广泛用于客户端的脚本语言，最早是在HTML（标准通用标记语言下的一个应用）网页上使用，用来给HTML网页增加动态功能。</p>	
		</section>       
		
		<section>
            <h3>2.知识剖析</h3>
        </section>	 

        <section>
			<h4>JS有哪些数据类型？</h4>		
			<p>JavaScript 语言的每一个值，都属于某一种数据类型。JavaScript 的数据类型，共有六种。分别是undefined、null、boolean、number、string、object（ES6新增第七种 Symbol 一种数据类型，它的实例是唯一且不可改变的。类型的值）</p>								
        </section>	

		<section>
            <p>1）Undefined：Undefined类型只有一个值，即特殊值undefined。在使用var声明变量，但未对其加以初始化时，这个变量值就是undefined。</p>	
			<p>2）Null：Null类型是第二个只有一个值的数据类型。其特殊值就是Null。从逻辑角度上看，null是一个空的对象指针。而这也正是使用typeof操作符检测null值，会返回“object”的原因 </p>
			<p>3）Boolean：即布尔类型，该类型有两个值：true false。需要注意的是，Boolean类型的字面值true和false是区分大小写的。也就是说，True和False(以及其它的混合大小形式)都不是Boolean值，只是标识符。</p>
		
        </section>	

		<section>
            <p>4）Number：该类型的表示方法有两种形式，第一种是整数，第二种为浮点数。整数：可以通过十进制，八进制，十六进制的字面值来表示。浮点数：就是该数值中必须包含一个小数点，且小数点后必须有一位数字。</p>	
			<p>5）String：String类型用于表示由零或多个16位的Unicode字符组成的字符序列，即字符串。至于用单引号，还是双引号，在js中还是没有差别的。记得成对出现。</p>	
			<p>6）Object：Object数据类型，称为对象，是一组数据和功能（函数）的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。在其中添加不同名（包含空字符串在内的任意字符串）的属性。</p>	

        </section>	

        <section>
            <h4>JS数据类型的常用方法</h4>
			<p>这里介绍6种：Boolean()、toString()、String()、isNaN()、Number()、parseInt()。</p>
        </section>		
      		
	    <section>
            <h3>3.常见问题</h3>
        </section>
		
        <section>
            <h4>怎么样判断各种数据类型？</h4>
        </section>
		        		
        <section>
            <h3>4.解决方案</h3>
        </section>
		
        <section>
		    <h4>这里介绍2种方法：typeof、Object.prototype.toString</h4>
            <p>1）typeof：用来判断各种数据类型,有两种写法：typeof xxx ,typeof(xxx) </p>
			<p>总结：如果右边的是基本类型，则typeof会尝试得到最基本的类型，比如number,string等等，如果是函数名，那么则返回function，这里Object，Number，String，等等都可以看成函数名，如果右边是一个基本的对象，则返回object(返回的都是小写哦）。 注：我们发现typeof null，结果返回了object，这是一个很早之前的BUG，一直沿用至今。 试用范围：如果通过typeof来判断类型，适用于判定基本类型，或者判断是否为函数（function)。</p>
        </section>
		
		<section>
		    <p>2）Object.prototype.toString </p>
			<p>需要注意的是，必须通过Object.prototype.toString.call来获取，而不能直接 new Date().toString(), 从原型链的角度讲，所有对象的原型链最终都指向了Object, 按照JS变量查找规则，其他对象应该也可以直接访问到Object的toString方法，而事实上，大部分的对象都实现了自身的toString方法，这样就可能会导致Object的toString被终止查找，因此要用call来强制执行Object的toString方法。 </p>
        </section>		

        <section>
            <h3>5.编码实战</h3>
        </section>

        <section>
        	<h3>6.扩展思考</h3>                
        </section>
		
        <section>
            <h4>JavaScript 类型转换有哪些？以及如何转换？</h4>			
		</section>
			
        <section>
            <h3>7.参考文献</h3>          
            <p>http://www.runoob.com/js/js-type-conversion.html</p>
			<p>http://javascript.ruanyifeng.com/#introduction</p>
			<p>http://www.jb51.net/article/91477.htm</p>
        </section>
		
        <section>
            <h3>8.更多讨论</h3>
            <p>判断数据类型还有没有更多方法？</p>	
        </section>
				
        <section>
            <h4>谢谢观看</h4>
            <p></p>
            <p><small>By:冯亚超</small></p>
        </section>


    </div>
</div>

<script src="https://ptteng.github.io/PPT/lib/reveal/js/head.min.js"></script>
<script src="https://ptteng.github.io/PPT/lib/reveal/reveal.js"></script>

<script>
    // 以下为常见配置属性的默认值
    // {
    //  controls: true, // 是否在右下角展示控制条
    //  progress: true, // 是否显示演示的进度条
    //  slideNumber: false, // 是否显示当前幻灯片的页数编号，也可以使用代码slideNumber: 'c / t' ，表示当前页/总页数。
    //  history: false, // 是否将每个幻灯片改变加入到浏览器的历史记录中去
    //  keyboard: true, // 是否启用键盘快捷键来导航
    //  overview: true, // 是否启用幻灯片的概览模式，可使用"Esc"或"o"键来切换概览模式
    //  center: true, // 是否将幻灯片垂直居中
    //  touch: true, // 是否在触屏设备上启用触摸滑动切换
    //  loop: false, // 是否循环演示
    //  rtl: false, // 是否将演示的方向变成RTL，即从右往左
    //  fragments: true, // 全局开启和关闭碎片。
    //  autoSlide: 0, // 两个幻灯片之间自动切换的时间间隔（毫秒），当设置成 0 的时候则禁止自动切换，该值可以被幻灯片上的 ` data-autoslide` 属性覆盖
    //  transition: 'default', // 切换过渡效果，有none/fade/slide/convex/concave/zoom
    //  transitionSpeed: 'default', // 过渡速度，default/fast/slow
    //  mouseWheel: true, //是否启用通过鼠标滚轮来切换幻灯片
    // }
    // 初始化幻灯片
    Reveal.initialize({
        history: true,
        dependencies: [
            { src: 'https://ptteng.github.io/PPT/plugin/markdown/marked.js' },
            { src: 'https://ptteng.github.io/PPT/plugin/markdown/markdown.js' },
            { src: 'https://ptteng.github.io/PPT/plugin/notes/notes.js', async: true },
            { src: 'https://ptteng.github.io/PPT/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
        ]
    });
</script>
</body>
</html>
